package com.net.xpay.core.domain;
import com.net.common.domain.CommonDomain;
import com.net.xpay.alipay.enums.IdentityType;
import com.net.xpay.core.enums.FlexibleStaffCardOrderType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 灵工卡交易记录 扣款或者是提现
 */
@Getter
@Setter
@NoArgsConstructor
public class FlexibleStaffCardOrder extends CommonDomain {
    @ApiModelProperty(notes = "用户编号")
    private Long userId;

    @ApiModelProperty(notes = "合伙人id")
    private Long partnerId;

    @ApiModelProperty(notes = "灵工卡号")
    private Long flexibleStaffCardId;

    @ApiModelProperty(notes = "商家侧唯一订单号，由商家自定义。对于不同转账请求，商家需保证该订单号在自身系统唯一。")
    private String importBizNo;

    @ApiModelProperty(notes = "明细外部订单号 env + user_id + '-' + id")
    private String outBizNo;

    @ApiModelProperty(notes = "支付宝转账单据号")
    private String orderId;

    @ApiModelProperty(notes = "支付宝支付资金流水号")
    private String payFundOrderId;

    @ApiModelProperty(notes = "类型  1.还款 2.提现")
    private FlexibleStaffCardOrderType type;

    @ApiModelProperty(notes = "灵工卡扣款协议号")
    private String loanAgreementNo;

    @ApiModelProperty(notes = "标题")
    private String orderTitle;

    @ApiModelProperty(notes = "备注")
    private String remark;

    @ApiModelProperty(notes = "转账金额 单位元 保留2位小数")
    private BigDecimal transAmount;

    @ApiModelProperty(notes = "收款方账号")
    private String identity;

    @ApiModelProperty(notes = "收款方账号类型")
    private IdentityType identityType;

    @ApiModelProperty(notes = "收款方姓名 ALIPAY_LOGON_ID类型必填")
    private String name;

    @ApiModelProperty(notes = "收款方记账本协议号")
    private String agreementNo;

    @ApiModelProperty(notes = "通知地址")
    private String notifyUrl;

    @ApiModelProperty(notes = "完成时间")
    private LocalDateTime endTime;
}
